<?php

/**
 * 请求自定义PaaS接口
 * Date: 2018/12/17
 */

namespace Lib\Paas;

class Custom extends Base
{
    private $customId;
    public function __construct($customId)
    {
        $this->customId = $customId;
        parent::__construct();
    }

    /**
     * 调用paas自定义接口
     * @param array $data 一维数组，接口需要的参数信息，key=>value,post方式提交
     * @param array $headerData http请求的header头部信息，如果是odp请求，可以调用Common::getOdpHeader()获取，其他请求，根据接口要求传递
     * @return array
     * [
     *      'iRet' => '接口是否调用成功，需要iRet和data中返回值一起判断',
     *      'sMsg' => '系统消息',
     *      'sAmsSerial' => '流水号',
     *      'data' => [],   //接口返回结果集数组
     * ]
     */
    public function getData($data, $headerData = [])
    {
        $url = $this->getPaasRequestUrl('custom.' . $this->customId);
        if (!empty($headerData)) {
            $data['customHeader'] = $headerData;
        }
        $res = $this->http->post($url, http_build_query($data));

        recordLog('查询自定义接口返回值：' . var_export($res, true), __FILE__, __LINE__);

        if ($res['ret'] != 0) {
            $this->tglogReport('框架请求ULink-Paas出现异常，curl_errno：' . $res['ret'] . '，curl_error：' . $res['msg'], 'custom.' . $this->customId);
            return $this->getRetData(CURL_ERROR_NO, '系统繁忙，请稍后再试！');
        }
        $res = $res['data'];

        if ($res['ret'] != 0) {
            return $this->getRetData($res['ret'], '系统繁忙，请稍后再试！');
        } else {
            return $this->getRetData('0', 'success', ['data' => $res['data']]);
        }
    }
}
